// 导入用户生成文件MD5值的工具包
import SparkMD5 from "spark-md5";

// 生成文件 hash
self.onmessage = (e) => {
  // 得到主线程传递过来的文件
  const file = e.data;
  // 创建文件读取对象
  const reader = new FileReader();
  // 异步读取文件数据
  reader.readAsArrayBuffer(file)
  // 读取完成的监听
  reader.onload = (e) => {
    // 得到文件数据的arrayBuffer对象
    const arrBuffer = e.target.result
    console.log(file, arrBuffer)
    // 创建能处理arrayBuffer数据的spark对象
    const spark = new SparkMD5.ArrayBuffer();
    // 添加文件数据
    spark.append(arrBuffer)
    // 得到对应的hash值
    const hash = spark.end()
    console.log('hash值: ', hash)
    // 将文件的hash值发送给主线程
    self.postMessage({ hash });
  }
};
